Міністерство освіти і науки України
Національний університет Львівська політехніка
Звіт
до лабораторної роботи № 6
на тему: “Функцiї opendir, readdir, closedir,
rewinddir, seekdir, telldir, scandir.”
Мета роботи
Познайомитися i навчитися використовувати функцiї для роботи з директорiями opendir, readdir, closedir, rewinddir, seekdir, telldir, scandir операцiйної системи Linux.
Познайомитися (чи згадати i закрiпити) з механiзмом передачi параметрiв у програму.
Виконання лабораторної роботи
1. Функція READDIR
SYNOPSIS
#include <sys/types.h>
#include <dirent.h>
struct dirent *readdir(DIR *dir);
DESCRIPTION
Readdir () повертає покажчик на несподіваний структуру як наступного запису каталозі в каталозі потік, на який вказує реж. Вона повертає NULL по досягненні кінця файлу або якщо сталася помилка.
Відповідно до POSIX, несподіваний структура містить поле символ d_name [] невизначеного розміру, з більш символів NAME_MAX попередньої нульовий символ. Використання інших полів зашкодить переносимість ваших програм. POSIX-2001 також документи d_ino області ino_t як розширення XSI.
Дані, що повертаються readdir () можуть бути замінені наступними викликами readdir () за той же потік каталогу.
RETURN VALUE
Readdir () повертає покажчик на несподіваний структури, або NULL, якщо відбувається помилка чи настає кінець файлу буде досягнутий.
2. Функція OPENDIR
SYNOPSIS
#include <sys/types.h>
#include <dirent.h>
DIR *opendir(const char *name);
DESCRIPTION
Opendir () відкриває потік каталозі відповідні ім'я каталогу й повертає покажчик на потік каталогу. Потік, знаходиться на першій позиції в каталозі.
RETURN VALUE
Opendir () повертає покажчик на потік каталогу чи NULL, якщо сталася помилка.
3. Функція CLOSEDIR
SYNOPSIS
#include <sys/types.h>
#include <dirent.h>
int closedir(DIR *dir);
DESCRIPTION
Closedir () Закриває потік каталозі пов'язаних з реж. Дескриптор каталозі потік каталог недоступний після цього виклику.
RETURN VALUE
Closedir () повертає 0 в разі успіху або -1 у випадку помилки.
4. Функція REWINDDIR
SYNOPSIS
#include <sys/types.h>
#include <dirent.h>
void rewinddir(DIR *dir);
DESCRIPTION
Rewinddir () функція скидає положення реж потік каталог в початок каталогу.
RETURN VALUE
Rewinddir () повертає ніякого значення.
5. Функція SEEKDIR
SYNOPSIS
#include <dirent.h>
void seekdir(DIR *dir, off_t offset);
DESCRIPTION
Seekdir () встановлює місце в каталозі потік, з якого наступного readdir () призведе початку. seekdir () повинна використовуватися зі зміщенням повертається telldir ().
RETURN VALUE
Seekdir () повертає ніякого значення.
6. Функція TELLDIR
SYNOPSIS
#include <dirent.h>
off_t telldir(DIR *dir);
DESCRIPTION
Telldir () повертає поточне місце розташування пов'язано з реж потоку каталогу.
RETURN VALUE
Telldir () повертає поточну позицію в потоці каталозі або -1, якщо відбулася помилка.
7. Функція SCANDIR
SYNOPSIS
#include <dirent.h>
int scandir(const char *dir, struct dirent ***namelist,
int(*select)(const struct dirent *),
int(*compar)(const struct dirent **, const struct dirent **));
int alphasort(const void *a, const void *b);
int versionsort(const void *a, const void *b);
DESCRIPTION
Scandir () функція сканує каталог каталог, називаючи вибір () для кожного каталогу. Записи, для яких вибір () повертає ненульовий значення, зберігаються в рядках виділяються через Танос (), відсортовано використанням qsort () з порівняння функцію порівняння () і зібрані в масиві списку імен, який виділяється через Танос (). Якщо вибраний NULL, всі записи будуть вибрані.
Alphasort () і versionsort () можуть бути використані в якості порівняння функцію порівняння (). Колишній каталог сортів записи з допомогою strcoll (3), використовує strverscmp (3) на рядки (*) -> d_name і (* б) -> d_name.
RETURN VALUE
Scandir () повертає число вибраних елементів каталогу або -1, якщо відбулася помилка.Alphasort () і versionsort () повертають ціле число менше, рівне або більше нуля, якщо перший аргумент відповідно, повинен вважатися менше, дорівнює або більше др...